1. Field of the Invention
The present invention relates generally to 3D modeling systems and more specifically to an intelligent system and method for increasing performance by the efficient use of limited resources via incremental fetching, loading and unloading of data assets of three-dimensional worlds based on transient asset priorities.
2. Related Art
In just a few short years since its emergence on the Internet, the world wide web (WWW) has revolutionized the way many people communicate with each other and interact with commercial, governmental and educational entities. Before the emergence of the world wide web, the Internet was predominantly used by governmental, scientific and academic communities. Since the introduction of the world wide web however, the Internet has experienced unprecedented growth and has become a cultural phenomenon that is used on a regular basis by mainstream populations throughout the world.
The Internet has been transformed from a cryptic command line, text-based environment into a user-friendly, easily navigable `cyber space` filled with colorful graphical images, high quality sounds and full motion video. Anyone can navigate through the world wide web by simply pointing and clicking with a mouse or other pointing device, such as a trackball, touchpad, touch screen or electronic pen. This transformation has lead to an abundance of new Internet subscribers and Internet providers.
The transformation of the Internet has been accomplished for the most part through the use of a standard markup language used by Internet sites known as the hypertext markup language (HTML). HTML provides a unified interface to text and multimedia data. HTML provides a means for anyone with a text editor to create colorful `web pages` which can be viewed by Internet subscribers around the world. HTML sites are viewed through the use of a tool known as a browser which enables one to explore the contents of databases located throughout the world without needing to be concerned about the details of the data format. Browsers download and interpret the HTML provided by each Web site and display them as `pages` on a local display device, such as a computer monitor or the like. Each HTML page can contain text, graphics and hypertext links to other HTML pages. Each page has a unique Internet address which is referred to as a Uniform Resource Locator (URL).
Thus, when a user clicks on a hypertext link a new URL is fetched by the browser and downloaded to the user's workstation. Typically, the previous web page is replaced by a new web page that is defined by the HTML provided by the new URL. Generally hypertext links are depicted as underlined or highlighted words, depending on the browser's implementation of displaying of HTML. Hypertext links can also appear as buttons or other graphical images. In addition, in most browsers, the shape of the cursor changes when the pointer passes over a hypertext linked screen object. For example, a cursor having the shape of an arrow may change into the shape of a hand when passing over a hypertext link.
Each HTML page can have an arbitrary length. For example, consider a WWW site that provides a selection of Shakespeare's plays. The first page of the website may comprise a list of all available plays. Each element in the list comprises a URL link to one of Shakespeare's plays. The list may be scrolled vertically or horizontally by the user, depending on the implementation of the HTML as provided by the web page author. When a user selects a play by clicking the mouse button on a list item, a new HTML page is downloaded from the URL and the list is replaced with a representation of the selected play.
The selected play may be represented in a variety of ways by the web page author. For example, the entire play can be represented by a single URL as one long scrollable web page. Alternatively, each page of the play can be represented by a different URL, in which case a different set of HTML links will be included at the bottom of each page providing a link to the next or previous pages, for example. In other implementations, a web page author may choose to represent each scene or act in the play as a single URL or web page.
Each time a new web page is loaded, a new HTML document must be downloaded or fetched by the browser. The amount of time it takes to fetch each new web page depends on the size of the new web page and the complexity of the content contained therein.
A new description language which promises to further revolutionize the WWW has recently appeared on the Internet. This new language is called virtual reality modeling language (VRML). VRML documents are used to create three dimensional (3D) infinitely scalable, virtual worlds on the Web. The goal of these worlds is to provide a convincing illusion of a 3D environment that visitors may explore. Similar to the way HTML operates, VRML documents are downloaded from VRML web sites into local host computer systems by VRML browsers. The VRML browsers interpret the scene (also referred to herein as a `world` or `model`) that is described by the VRML file and renders the resulting images on the local display device. 3D rendering is performed from the viewpoint of a virtual camera that has the ability to move and tilt in any direction in response to user input, via a mouse, keyboard or other input device. In addition, objects within the 3D world can be examined and manipulated by a user. Further, like HTML, VRML documents can provide links to other VRML worlds and/or HTML Web pages through the use of URL links.
The use of VRML enables Internet users to navigate through three dimensional worlds in real-time. 3D environments are being used to augment the information gathering experience of Internet users. For example, a user can navigate through the streets of a city and hyper link to a particular company's home web page by clicking on the company's building site. Other examples include on-line virtual shopping, museum browsing, entertainment and corporate briefing centers. VRML also allows users to experience worlds that have no physical counterpart and are not constrained by physical restrictions due to size, location, time, or safety. Such worlds need not even obey the laws of physics that govern our everyday lives.
Although the use of VRML represents a major breakthrough on several levels, many problems are still to be overcome. Many of the problems that are encountered are related to the requirement of real-time performance. Fetching and rendering 3D data is very time consuming due to the volume of data that needs to be downloaded into the local computer system, and the computational power required to render the 3D images. Thus, performance problems are primarily due to two limiting factors, namely the bandwidth of the Internet connection and the limited resources and processing power of the local computer system.
For example, limited resources of the local computer system include general purpose random access memory, video card memory, sound card memory and disk caches. The network itself can also be considered a limited resource. Each limited resource has a particular access time associated with it. The access time is the amount of time it takes to retrieve the data from the limited resource and send it to the appropriate place to be presented to the user.
In general, access times for sound and video card memory are very low. This is followed by general purpose memory, which is followed by disk cache memory. Typically the network itself is the source of the greatest access time.
Today, most Internet connections are accomplished via analog telephone lines using commercial-off-the-shelf modems. Such modems typically operate at speeds of up to 28,000 bits per second. This limited bandwidth makes it difficult to download the vast amount of information needed to render 3D worlds in a real-time fashion. Even the fastest Internet connections, such as those implemented using ISDN lines, which provide Internet connection speeds of up to 144,000 bits per second, are generally not fast enough to alleviate the bottleneck problems due to limited bandwidth.
Using conventional methods, a clever VRML author may attempt to organize the VRML document so that certain objects that are considered more important are downloaded before other objects. Conventionally, URLs within VRML documents are processed in the order in which they are written. That is, URLs that are located at the top of the VRML file are downloaded before URLs that are located at the bottom.
Thus, a VRML author may attempt to increase the performance of the 3D world by optimally arranging the order of URLs contained in the VRML file. However, due to the nature of 3D worlds, this task is almost impossible. Problems arise because it is very difficult to predict the way users will interact with the 3D world. Users are free to move in any direction, change viewing angles and movement speeds. Further, users are free to click on close or distant objects in an arbitrary fashion. Thus, because so many variables are possible, the conventional method does not provide a means to optimally pre-order the URLs to affect the fetching to increase the performance of the 3D world.